]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st/icon-theme: Fix transparent colors in symbolic SVGs
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 5 Apr 2023 14:02:29 +0000 (16:02 +0200)
committerMarge Bot <marge-bot@gnome.org>
Wed, 5 Apr 2023 18:55:56 +0000 (18:55 +0000)
When loading a symbolic SVG, the original file is wrapped in
a header that includes a generated stylesheet with the
appropriate colors, plus an overall opacity.

The opacity value is clamped to values between 0 and 1, which
directly matched the alpha field of the GdkRGBA type. However
since we moved to StIconColors/ClutterColor, the alpha field
is now in the range [0..255], any alpha value other than 0 now
results in full opacity.

To fix, translate the [0..255] integer into a [0..1] double
before using it as opacity.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2731>

src/st/st-icon-theme.c

index d6f68afbbe0ee0e29e5190c43e3a2c466bdc75f0..9edde5c7711afad2c15e4e152025f372daf30ea5 100644 (file)
@@ -3802,7 +3802,7 @@ st_icon_info_load_symbolic_svg (StIconInfo    *icon_info,
   double alpha;
   char alphastr[G_ASCII_DTOSTR_BUF_SIZE];
 
-  alpha = colors->foreground.alpha;
+  alpha = colors->foreground.alpha / 255.;
 
   css_fg = color_to_string_noalpha (&colors->foreground);